// pages/course/ailife/ailife.js
const app = getApp();
Page({

    data: {
        downurl: 'http://localhost:8080/file/downLoad?fileName=',
        url: '',
        course: [], // 初始化为空数组
        originalCourse: [], // 保存原始的课程数据
        pageNum: 1,
        totalPageCount: 0,
        option1: [
            { text: '排序', value: 0 },
            { text: '价格升序', value: 1 },
            { text: '价格降序', value: 2 },
        ],
        option2: [
            { text: '所有区间', value: 'a' },
            { text: '免费', value: 'b' },
            { text: '￥50以下', value: 'c' },
            { text: '￥50 - 100', value: 'd' },
            { text: '￥100 - 300', value: 'e' },
            { text: '￥300 - 500', value: 'f' },
            { text: '￥500 - 1000', value: 'g' },
        ],
        value1: 0,
        value2: 'a',
    },

    getcourse() {
        // 显示加载中
        wx.showLoading({
            title: '数据加载中...',
            mask: true
        })
        let that = this
        wx.request({
            method: "GET",
            url: that.data.url + '/course/findByPage',
            data: {
                pageNum: that.data.pageNum,
                pageSize: 10
            },
            success(resp) {
                // 对返回的数据进行字段映射
                const mappedList = resp.data.data.list.map(item => ({
                    course_id: item.courseId,
                    course_name: item.courseName,
                    course_introduce: item.courseIntroduce,
                    course_dis_price: item.courseDisPrice,
                    course_original_price: item.courseOriginalPrice,
                    course_tabular_chat:item.courseTabularChart
                }));
                that.setData({
                    course: [...that.data.course, ...mappedList],
                    originalCourse: [...that.data.originalCourse, ...mappedList], // 保存原始数据
                    totalPageCount: resp.data.data.pages,
                })
                wx.hideLoading()
            },
            fail(err) {
                console.error('请求失败:', err)
                wx.hideLoading()
            }
        })
    },

    onLoad() {
        this.setData({
            url: app.globalData.URL
        })
        this.getcourse()
    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {
        // 加载第一页数据，数据重置
        this.setData({
            course: [],
            originalCourse: [], // 重置原始数据
            pageNum: 1,
            totalPageCount: 0,
        })
        this.getcourse();
        // 关闭加载提示框
        wx.hideLoading()
        // 手动关闭下拉刷新
        wx.stopPullDownRefresh()
    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {
        if (this.data.isLoading) return;
        if (this.data.pageNum >= this.data.totalPageCount) {
            wx.showToast({
                title: '没有更多数据!',
                icon: 'none'
            })
            return;
        }
        this.setData({
            pageNum: this.data.pageNum + 1
        })
        this.getcourse();
    },

    // 排序改变事件处理函数
    onSortChange(event) {
        const value = event.detail;
        this.setData({
            value1: value
        });
        let sortedCourse = [...this.data.course];
        if (value === 1) {
            // 价格升序
            sortedCourse.sort((a, b) => a.course_dis_price - b.course_dis_price);
        } else if (value === 2) {
            // 价格降序
            sortedCourse.sort((a, b) => b.course_dis_price - a.course_dis_price);
        }
        this.setData({
            course: sortedCourse
        });
    },

    // 筛选改变事件处理函数
    onFilterChange(event) {
        const value = event.detail;
        this.setData({
            value2: value
        });
        let filteredCourse = [...this.data.originalCourse]; // 基于原始数据进行筛选
        switch (value) {
            case 'b':
                // 免费
                filteredCourse = filteredCourse.filter(item => item.course_dis_price === 0);
                break;
            case 'c':
                // ￥50以下
                filteredCourse = filteredCourse.filter(item => item.course_dis_price < 50);
                break;
            case 'd':
                // ￥50 - 100
                filteredCourse = filteredCourse.filter(item => item.course_dis_price >= 50 && item.course_dis_price < 100);
                break;
            case 'e':
                // ￥100 - 300
                filteredCourse = filteredCourse.filter(item => item.course_dis_price >= 100 && item.course_dis_price < 300);
                break;
            case 'f':
                // ￥300 - 500
                filteredCourse = filteredCourse.filter(item => item.course_dis_price >= 300 && item.course_dis_price < 500);
                break;
            case 'g':
                // ￥500 - 1000
                filteredCourse = filteredCourse.filter(item => item.course_dis_price >= 500 && item.course_dis_price < 1000);
                break;
            default:
                // 不筛选，显示原始数据
                filteredCourse = this.data.originalCourse;
                break;
        }
        this.setData({
            course: filteredCourse
        });
    }
})